from abc import ABC, abstractmethod

from chernc.treediff.gumtree.actions.edit_script import EditScript
from chernc.treediff.gumtree.matchers.mapping_store import MappingStore

class EditScriptGenerator(ABC):
    """
    Interface for generating an edit script based on mappings.
    """

    @abstractmethod
    def compute_actions(self, mappings: MappingStore) -> EditScript:
        """
        Compute and return the edit script for the provided mappings.
        """
        pass
